Wykład 1
Przebieg prac nad wdrożeniem modelu
Budowa modeli i ich późniejsze wdrażanie odbywa się w wielu etapach. Rzadko kiedy model powstaje w pierwszym podejściu do rozwiązania problemu badawczego. Najczęściej w toku kolejnych korekt powstaje ostateczny projekt, który może zostać zaimplementowany na serwerze klienckim, czy urządzeniu docelowym. Nierzadko również (szczególnie w przypadku rozbudowanych modeli) pracę nad nim prowadzi kilka osób. Wydana wersja modelu może również charakteryzować się pewnymi błędami czy niedogodnościami, sugerowanymi przez użytkowników. To powoduje, że tzw ‘ostateczna’ wersja musi być również poprawiana. Przebieg przygotowania modelu i jego wdrożenia może wyglądać następująco:
- Definiowanie problemu badawczego:
- Zidentyfikuj problem, który chcesz rozwiązać za pomocą modelu.
- Określ cele, jakie chcesz osiągnąć.
- Zbieranie danych:
- Zebranie odpowiednich danych.
- Analiza danych:
- Eksploracyjna analiza danych (EDA), aby zrozumieć charakterystyki danych.
- Wykrywanie brakującymi danych, anomalii czy outlierów.
- Przygotowanie danych:
- Podziału danych na zestawy treningowe, walidacyjne i testowe.
- Normalizacja/standaryzacja danych, jeśli jest to konieczne.
- Wybór modelu:
- Wybór odpowiedniego rodzaju modelu.
- Dostosowanie hiperparametrów modelu w celu optymalizacji wyników.
- Trening modelu:
- Uczenie modelu korzystając z zestawu treningowego.
- Walidacja modelu:
- Użycie zestawu walidacyjnego do oceny skuteczności modelu.
- Optymalizacja modelu:
- Dostosowanie model w celu poprawy jego wydajność (regularyzacja, zmiana architektury, optymalizacja hiperparametrów, itp)
- Testowanie modelu:
- Ocena dopasowania modelu na zbiorze testowym.
- Wdrażanie modelu:
- Przygotowanie modelu do wdrożenia, uwzględniając aspekty wydajnościowe i skalowalność.
- Przygotowanie aplikacji (API) pozwalającej na umieszczenie modelu na serwerze lub urządzeniu docelowym.
W zależności od sytuacji, model może być również monitorowany i aktualizowany. Niezbędna może być również dokumentacja techniczna ułatwiająca zrozumienie i utrzymanie modelu przez odbiorców końcowych.
Konieczne w tym procesie jest kontrolowanie aktualnej wersji modelu i wszystkich przyległości z nim związanych. Idealnym narzędziem do zautomatyzowania czynności polegających na kontroli wersji jest program git.
Jest to darmowy program do pobrania ze strony domowej na dowolny system operacyjny. Jest to program działający w terminalu ale istnieją również jego wersje z przyjaznym GUI (najbardziej znany to GitHub Desktop), przy czym ten program jest jednocześnie połączony z hubem (czyli kontenerem) pozwalającym na przechowywanie i udostępnianie kodu w internecie, znanym jako GitHub. Nie jest to jedyna usługa serwerowa, która pozwala na zapisywanie i udostępnianie kodu z wykorzystaniem gita. Inne znane alternatywy to GitLab i Bitbucket.
W niniejszym wykładzie zostaną przedstawione rozwiązania z wykorzystaniem Gita i GitHuba.
Przykładowe repozytorium projektu tidymodels na stronie GitHub wygląda następująco.
Git w połączeniu z GitHubem pozwala na przechowywanie wszystkich wersji kodu, który tworzymy, a jednocześnie na udostępnianie go oraz umożliwienie współpracy nad kodem przez wielu użytkowników - współtwórców (ang. contributors) ale nie tylko. Udostępnianie może być zarówno publiczne, jak i prywatne.
Funkcjonalności GitHub, to:
Kontrola wersji kodu.
Kopiowanie kodu na dwa sposoby:
Clone:
- Klonowanie repozytorium oznacza skopiowanie zdalnego repozytorium na lokalny komputer.
- Gdy klonujesz repozytorium, uzyskujesz identyczną kopię zawartości, historii i gałęzi tego repozytorium na swoim lokalnym systemie.
- Możesz pracować nad projektem lokalnie i wysyłać swoje zmiany z powrotem do zdalnego repozytorium.
Przykład klonowania repozytorium:
git clone https://github.com/nazwa_uzytkownika/nazwa_repozytorium.gitFork:
- Forking (rozszerzanie) repozytorium oznacza utworzenie kopii zdalnego repozytorium w obrębie twojego konta na GitHubie.
- Kiedy forkujesz repozytorium, masz własną kopię, którą możesz dowolnie modyfikować, nie wpływając na oryginalne repozytorium.
- Forkowanie jest często używane w projekcie open source, gdzie chcesz dodać swoje zmiany, ale nie masz bezpośredniego dostępu do repozytorium.
Przykład forka repozytorium:
- Na stronie repozytorium w witrynie GitHub klikasz przycisk “Fork” w prawym górnym rogu. To utworzy kopię tego repozytorium w twoim własnym koncie.
Forking pozwala ci pracować niezależnie nad projektem, a następnie możesz zgłosić pull request (prośbę o zaakceptowanie zmian) do oryginalnego repozytorium, aby właściciel mógł uwzględnić twoje zmiany.
Zarządzanie Branchami:
- GitHub oferuje narzędzia do łatwego zarządzania gałęziami (branches). Możesz tworzyć, usuwać i łączyć gałęzie za pomocą interfejsu graficznego.
Komentarze i Dyskusje:
- Możliwość dodawania komentarzy do kodu źródłowego, pull requestów i problemów ułatwia komunikację w zespole.
Issues:
- GitHub umożliwia śledzenie problemów i zadań (issues). Możesz tworzyć, przypisywać, zamykać i dyskutować na temat problemów, co ułatwia śledzenie postępów w projekcie.
Integracje i Webhooks:
- GitHub oferuje integracje z różnymi narzędziami i usługami, co umożliwia automatyzację różnych procesów w projekcie. Webhooki pozwalają na powiadamianie zewnętrznych usług o zdarzeniach na GitHubie.
Pull Request Reviews:
- Możliwość recenzowania kodu źródłowego w ramach pull requestów. Recenzenci mogą komentować zmiany, proponować poprawki i potwierdzać gotowość do zaakceptowania zmian.
GitHub Actions:
- GitHub Actions to funkcja pozwalająca na automatyzację procesów budowania, testowania i wdrażania kodu źródłowego za pomocą skryptów.
Bezpieczeństwo:
- GitHub oferuje funkcje zabezpieczające, takie jak uwierzytelnianie dwuskładnikowe, zarządzanie dostępem i audyt.
Łącząc Git z Githubem, programiści zyskują mocne narzędzie do kontroli wersji, współpracy, śledzenia problemów i automatyzacji procesów, co przyczynia się do skutecznego zarządzania projektami oprogramowania1.
Tworzenie repozytorium
Tworzenie konta na GitHub
Aby stworzyć jakiekolwiek repozytorium, trzeba mieć miejsce, w którym to zrobimy. A zatem utworzymy nowe konto na GitHub.
Przejdź na stronę https://github.com/
Następnie wpisz w miejsce na email swój adres poczty.
W kolejnym kroku wypełnij pola na stronie
Po wypełnieniu wszystkich pól zostaniesz poproszony o rozwiązanie testu na sprawdzenie czy jesteś człowiekiem 🙉.